
import numpy as np


def process_cluster_sets(points, in_circle, clusters):
    unique_clusters = np.unique(clusters)
    cluster_sets_for_draw = {cluster: [] for cluster in unique_clusters}
    cluster_sets = {cluster: {"square_indices": [], "no_square_indices": []} for cluster in unique_clusters}
    original_indices = np.where(~in_circle)[0]
    for i, cluster_label in enumerate(clusters):
        if cluster_label!= -1:
            index_in_original = original_indices[i]
            cluster_sets_for_draw[cluster_label].append(points[index_in_original])
            if np.random.rand() < 0.2:
                cluster_sets[cluster_label]["square_indices"].append(index_in_original)
            else:
                cluster_sets[cluster_label]["no_square_indices"].append(index_in_original)
        else:
            cluster_sets[-1]["no_square_indices"].append(original_indices[i])
    return cluster_sets_for_draw, cluster_sets
